Micropython octopus()

V tomto návodu je popsáno, jak připravit počítač a ESP pro první pokusy s Micropythonem. Pokud se účastníte námi pořádaného workshopu nebo jste si sehnali už připravené ESP, velkou část popisu můžete přeskočit.


Celou přípravu jsme rozdělili na tři kroky:

  1. Příprava počítače (PC s Windows, IOS nebo Linux)
    Červená šipka > Do počítače stáhneme nástroj esptool
    (python
    nebo exe)
  2. Instalace Micropythonu do ESP
    Fialové šipky > Do počítače stáhneme Micropython a pomocí esptool ho nahrajeme do ESP
  3. Instalace octopus.py
    Zelená a oranžová > Pomocí terminálu Putty dokončíme instalaci knihoven v modulu octopus()
    3.1 octopus Micropython: pomocí octopus_initial.setup()
    3.2 Micropython „vlastní“: pomocí deploy – úplně na konci

Pokud se v našem návodu ztratíte, pro úvodní nastavení a zprovoznění Micropythonu v ESP můžete využít i jiné česky psané návody:


1. Příprava počítače

Varianta A) by měla být jednodušší, ale když selže – je tu plán B)


Pokud chcete zkusit nejrychlejší verzi bez Pythonu v počítači – stačí pouze do vaší pracovní složky rozbalit exe soubor „esptool.exe„, který si stáhnete zde: https://dl.espressif.com/dl/esptool-2.6.1-windows.zip
Pak ho budete mít uložen například: D:\vas-adresar\esptool.exe
Po odkliknutí se spustí esptool a vypíše nápovědu – a chybovou hlášku o nutnosti dalších parametrů nebo chybová hláška, že není v aktuálním adresáři nainstalován,

Můžete přejít k bodu 2.



Pro pokročilejší či nadšenější
(nebo pro Mac či Linux – kde nelze použít esptool.exe):

Windows:
Nainstatujte si Python3 – hezky popsáno na https://naucse.python.cz/course/pyladies/beginners/install/

Pak je potřeba „do Pythonu“ nainstalovat esptool – nástroj pro komunikaci s ESP (mazání flash a přehrávání firmware – „binárky“ Micropythonu)

> Stiskněte na klávesnici symbol Windows a potom napište „cmd„,
tak se dostanete do příkazového řádku – konzole.

Z konzole se provádí:
> D:\vas-adresar\pip install esptool

(chybová hláška ‚pip‘ is not recognized as an internal or external command,
operable program or batch file.
Znamená, že máte špatně naintalovaný Python nebo nemáte pip – zkuste google: install python3 / pip / pip3)


Linux – instalace

V nově vznikající dokumentaci je to popsánou už lépe: https://docs.octopuslab.cz/install/#gnulinux


Linux – celková detailní příprava:
to, co nutně potřebujete je označeno tučně, většinu běžné Linuxové distribuce to už obsahují.

apt-get install python3
apt-get install python-serial
apt-get install python3-pip
apt-get install screen
pip3 install esptool
pip3 install adafruit-ampy

Pro přehrávání souborů se používá ampy, ale ten v úvodní části nebudeme používat.

Moduly ESP32

ESP: Mikrokontrolér s WiFi - do začátku postačí "libovolný modul" (pracujeme s ESP32 - Espressif), který připojíme do USB počítače.
Nejčastěji využíváme modul 1 - (poznávací znamení 2x15 pinů, pinout níže v textu) Ten tvoří jádro ROBOTboard - desky nejen pro robota, ale i pro první dvě části workshopu "seznámení s IoT a Micropythonem"
Modul 2 "Wemos" (2 x 2 x 10 pinů) využíváme v IoTboard.
A náš vlastní experimentální ESP32board (pod číslem 3) testujeme pro některé další projekty - a počítáme s ním do budoucna, jako s hlavním modulem.

2. Nahrání Micropythonu do ESP32

V popisu se podrobněji zaměřujeme na Windows, protože Linuxáci jsou s konzolí větší kamarádi.

Stažení Micropythonu

Na vašem disku si připravte adresář, kde budete s Micropythonem pracovat. Například C:\uPy
V našich příkladech uvádíme: D:\vas-adresar

Do D:\vas-adresar\download\ si stáhněte Micropython pro ESP32, můžete i ověřenou a stabilní verzi od nás: https://octopusengine.org/download/micropython/micropython-octopus.bin (do začátku doporučujeme použít naší verzi, jelikož v sobě již obsahuje základ pro prvotní inicializaci systému octopus initial setup a zjednoduší vám další instalaci systému.

Aktuální verze ke stažení od 30 6. 2020 je:
MicroPython v1.12-599-g2be160140-build-octopusLAB on 2020-06-30

Od března 2020 používáme movou verzi SDK: ESP-IDF: v3.3.2
Předchozí verzi ESP-IDF: v3.3.1 už nebudeme podporovat.
Zároveň testujeme i SDK v4.0.+


Detekce připojeného ESP k USB

ESP připojujeme k počítači po virtuální sériové lince (UART) pomocí USB kabelu. Proto je je ještě nutno mít nainstalován ovladač USB to UART Bridge: https://www.pololu.com/docs/0J7/all, Často je ovladač už instalován, hlavně pokud už jste si někdy „hráli“ s Arduinem.
Win10 už s tímto ovladčem nemívá problémy. V Linuxu je potřeba dořešit práva přístupu k portu, podobně v Mac se musí odklikat „Security & Privacy“.
Některé starší modely – například Witty s ESP8266 má jiný převodník CH340G – česky více o tomto potřebném ovladači: https://iotta.cz/ovladace-pro-ch340g/

Připojené ESP kabelem mikro USB k počítači

Musíme „zjistit“ na jakém portu počítače budeme s ESP komunikovat.
To, co je na Linuxu obvykle /dev/ttyUSB0 (zjistíte příkazem: dmesg | tail), bývá u Windows „různější“ – postupně jsou přidělovány porty COM1 až COM-velké-číslo.

Jak zjistíme číslo portu, na kterém máme ESP?
> Připojte modul ESP kabelem k USP portu počítače
> Stiskněte symbol Windows + X
> Vyberte: Správce zařízení
> Rozbalte Porty(COM a LPT) jeden z řádků by mohl být např:
Silicon Labs CP210x USB to UART Bridge (COM6) což znamená, že Windows správně „vidí“ zařízení a „přiřadil“ ho na COM6, a to je přesně to, co nás v tuto chvíli zajímá. (u vás to může být jiný COM, občas to bývá i trochu jiný chip, připojené zařízení poznáte tak, že ho kabelem připojíte – pak odpojíte (ovladač zmizí) – opět připojíte – a měli byste vidět to vaše.

Jak nahrát Micropython do ESP

Buď máte esptool.exe nebo esptool.py a podle toho použijete následující příkazy. Zkontrolujte si:
D:\vas-adresar\esptool.exe > spustí esptool a vypíše nápovědu 
D:\vas-adresar\esptool.py  > pokud jste instalovali do Pythonu

1. Nejdříve zcela vymažeme obsah flash paměťi v ESP:
D:\vas-adresar\esptool.exe --chip esp32 -p COM6 erase_flash 
(POZOR! Po odkliknutí se někdy musí chvilku stisknout tlačítko "boot" na Modulu ESP, aby se vůbec připojil)

2. A na volné místo nahrajeme stažený micropython bin.
D:\vas-adresar\esptool.exe --chip esp32 -p COM6 write_flash -z 0x1000 ./download/micropython-octopus.bin  
Červeně: chybová hláška, že esptool.exe není v daném adresáři
Zeleně: první krok – mazání flash (erase_flash)
– někdy je nutno zmáčknout a podržet „boot“ tlačítko na ESP modulu.
Celý průběh korektního „flashování“ by pak mohl probíhat takto.
Na WIN10 máme ESP na portu COM6, a v octopuslab_temp/down je stažený uPy bin.

3. Instalace „octopus.py“

Sériový terminál pro komunikaci s ESP

V dalším kroku potřebujete terminál (kterým komunikujeme s ESP po sériové lince - "zelená tečkovaná")
Ve Win používáme např putty:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
který se nastaví na:
"serial"
váš COM - např: "COM6"
a přenosovou rychlost: 115200
V našem případě: COM6
dále se nastaví „Serial“ a rychlost přenostu 115200

základní rychlost: 115200

Po spuštění (někdy až po resetu ESP, nebo přerušení programu pomocí ctrl+C) bychom měli vidět něco podobného (verze systému se může lišit):
Pokud jste se dostali až sem, gratulujeme! Velký úsek té nejnáročnější části máte za sebou.

3.1. Instalace octopus.py a nastavení systému:

Micropython se přihlásí promptem: >>>
help(„modules“) nabízí i util/octopus_initial

octopus_initial.setup()

Modul octopus() obsahuje základní knihovny - naše i třetích stran pod licencí MIT.

Pokud jste si nainstalovali naší verzi Micropythonu:  
micropython-octopus.bin můžete po startu v terminálu napsat:

>>> octopus_initial.setup()
 
==============================
         S E T U P
==============================
 [w]   - wifi submenu
 [cw]  - connect wifi
 [cl]  - connect LAN
 [sd]  - system download
 [x]   - exit setup
==============================
zvolte w [enter] 

1. nastavíme wifi: 

==============================
      S E T U P - W I F I
==============================
 [a]  - Add wifi network
 [r]  - Remove wifi network
 [s]  - Show configuration  
==============================

zvolte a a stiskněte [enter] 
pro přidání vaší wifi sítě do zařízení 
(uloží se do flash ESP v config/wifi.json) 

SSID: název Vaší wifi 
PASSWORD: a heslo do ní 

2.  System download -  Deploy    
Po připojení do Internetu se v select setupu napíše:
cw [enter] (conect wifi)

sd [enter] (system download - from url octopus), které provede stažení TARu z našeho cloudu - vše se do ESP samo nahraje a rozbalí. Průběžně uvidíte všechny soubory (včetně podadresářů). 
Náhled, jak to asi uvidíte.
Dál už se vás to potom netýká 🙂


3.2. Jak nahrát systém octopus do Micropythonu, který není verzí s octopus_initial?

Celý popis je pro přehlednost opět na samostatné stránce:
https://www.octopuslab.cz/micropython-deploy/


Pokud jste si nenainstalovali naší verzi Micropythonu a chcete si nahrát sami aktuální verzi z gitu, postupujte podle staršího návodu:
https://www.octopuslab.cz/micropython-octopus-old/ 

první experimenty z konzole - stačí zadat:
>>> octopus()
      ,'''`.
     /      \
     |(@)(@)|
     )      (
    /,'))((`.\
   (( ((  )) ))
   )  \ `)(' / (

Hello, this is basic octopusLAB example (2018/12)
(Press Ctrl+C to abort | CTRL+D to soft reboot)

>>>

Pokud vidíte ASCII chobotnici a prompt „>>>“ – gratulujeme!

Máte systém nastaven. Pro další používání se změnilo to, že je nutno dynamicky doimportovat potrřebné moduly z octopusu – v procesu testů a výuky se dají importovat najednou:

>>> octopus() 
>>> from utils.octopus import * 

v kódu programu ale "import *" důrazně nedoporučujeme, tam se vždy uvedou jen nutné knihovny, například: 

>>> from utils.octopus import w, web_server  

...



https://github.com/octopuslab-cz/esp32-micropython-webserver-control


Pro návody využití ESP32 spolu s Micropythonem slouží samostatná podrobná stránka sw-dokumentace: https://docs.octopuslab.cz/